package org.goj.user.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.goj.common.entity.user.Team;
import com.baomidou.mybatisplus.extension.service.IService;
import org.goj.user.vo.TeamAdminVO;

/**
 * <p>
 * 团队表 服务类
 * </p>
 *
 * @author CK
 * @since 2021-05-05
 */
public interface TeamService extends IService<Team> {

    /**
     * 管理员添加团队
     *
     * @param userId      添加者ID
     * @param title       标题
     * @param description 描述
     * @param status      状态
     * @param privilege   权限
     * @param teamId      团队ID
     * @param url         图片地址
     * @return void
     * @author CK
     * @date 2021/5/5 17:23
     */
    void insertTeam(Integer userId, String title, String description, Integer status, Integer privilege, Integer teamId, String emails, String url);

    /**
     * 管理员查询团队列表
     *
     * @param current 当前页
     * @param size    页面大小
     * @param name    搜索名
     * @return Page<Team>
     * @author CK
     * @date 2021/5/5 18:26
     */
    Page<Team> teamListAdmin(Integer current, Integer size, String name);

    /**
     * 管理员查看团队信息
     *
     * @param teamId 团队ID
     * @return TeamAdminVO
     * @author CK
     * @date 2021/5/7 16:10
     */
    TeamAdminVO teamByIdAdmin(Integer teamId);

    /**
     * 用户查询团队列表
     *
     * @param page 分页
     * @return Page<Team>
     * @author CK
     * @date 2021/5/8 15:12
     */
    Page<Team> listTeam(Page<Team> page);

    /**
     * 管理员删除团队数据
     *
     * @param teamId 团队ID
     * @return void
     * @author CK
     * @date 2021/5/8 19:20
     */
    void removeTeam(Integer teamId);
}
